Indicia, such as barcodes, have been used for decades to manage inventory, store useful consumer information, and to automate data entry to reduce time and errors inherent to manual data entry. Generally, an indicia is a machine-readable representation of information that is encoded in a graphic format. Traditional barcodes are a series of parallel bars and spaces of varying widths, such as a linear barcode or 1D barcode. Additionally, matrix code indicia have gained increasing popularity, as technology has advanced and the amount of encoded information needed in an indicia has increased. Examples include 2D barcodes, QR Code, Aztec Code, Data Matrix, and Optical Character Recognition (OCR), among many others.
The increasing ubiquity of mobile devices such as smartphones and tablet computers, and their continually improving processing and camera technology has led consumers to employ these mobile devices as indicia readers. Typically, these mobile devices have integrated digital cameras that are used as image sensor based barcode readers. The image sensors capture a digital image and use software algorithms to locate and decode one or more indicia.
One of the biggest challenges using a mobile device to scan an indicia is obtaining a focused image of the indicia. Typically, most mobile devices utilize an autofocus routine that sweeps across a wide range of focal distances until a proper focal distance is determined. The mobile device generally evaluates intensity differences between adjacent pixels across the wide range of focal distance. Such an autofocus method is quite time consuming, and is often hampered by excessive motion and poor lighting conditions. Consequently, when scanning a decodable indicia, the focusing procedure accounts for the vast majority of overall scan time, resulting in significant time delay.